// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once

#include <string>
#include <list>

#include "../SQLExpr.h"
#include "../SQLExprImpl.h"
#include "../Object.h"

// #include "../../visitor/SQLASTVisitor.h"

#include "SQLPrimaryKey.h"
#include "SQLUnique.h"

class SQLPrimaryKeyImpl  : virtual public  SQLUnique  , virtual public  SQLPrimaryKey /* , virtual public  SQLTableConstraint */ {
  public:
    BOOL_ptr disableNovalidate;
    BOOL_ptr clustered; // sql server

    SQLPrimaryKeyImpl() ;

    
    // void accept0(SQLASTVisitor* visitor) ;

    // SQLPrimaryKeyImpl* clone() ;
    virtual SQLObject_ptr clone();
    void cloneTo(SQLPrimaryKeyImpl_ptr x) ;

    BOOL_ptr isDisableNovalidate() ;

    void setDisableNovalidate(BOOL_ptr disableNovalidate) ;

    BOOL_ptr isClustered() ;

    void setClustered(BOOL_ptr clustered) ;
};
